import java.util.ArrayList;
import java.util.List;

public class LeetCode1047 {
    public static String test(String data) {
        if (data != null && data.length() > 0 && data.length() <=20000) {
            char[] list = data.toCharArray();
            List<Character> temp = new ArrayList();
            for (int i = 0; i < list.length; i++){
                temp.add(list[i]);
            }
            int index = 0;
            int endIndex = list.length;
            while (index + 1 != endIndex){
                if (temp.isEmpty()){
                    return "";
                }

                if (temp.get(index).equals(temp.get(index + 1))){
                    temp.remove(index);
                    temp.remove(index);

                    index = 0;
                    endIndex = endIndex - 2;
                }else{
                    index++;
                }
            }

            char[] tempArray = new char[endIndex];
            for (int j = 0; j < endIndex; j++){
                tempArray[j] = temp.get(j);
            }

            String str = new String(tempArray);
            return  str;
        }
        return "";
    }

    public static String test2(String data) {
        if (data != null && data.length() > 0 && data.length() <=20000) {
            char[] list = data.toCharArray();
            char[] temp = new char[list.length];
//            for (int i = 0; i < list.length; i++){
//                temp.add(list[i]);
//            }
            int index = 0;
            int tempIndex = 0;
            int endIndex = list.length;
            while (index + 1 != endIndex){
//                if (temp.isEmpty()){
//                    return "";
//                }

                if (list[index] == list[index+1]){
                    index = index-1;
                }else{
                    index = index + 1;
                    temp[tempIndex] = list[index];
                }

//                if (temp.get(index).equals(temp.get(index + 1))){
//                    temp.remove(index);
//                    temp.remove(index);
//
//                    index = 0;
//                    endIndex = endIndex - 2;
//                }else{
//                    index++;
//                }
            }

//            char[] tempArray = new char[endIndex];
//            for (int j = 0; j < endIndex; j++){
//                tempArray[j] = temp.get(j);
//            }

            String str = new String(temp);
            return  str;
        }
        return "";
    }
}
